<?php

namespace Admin\Form;

use Zend\Form\Annotation;

/**
 * @Annotation\Hydrator("Zend\Stdlib\Hydrator\ObjectProperty")
 * @Annotation\Name("form_profile")
 */
class ProfileForm {

    /**
     * @Annotation\Type("Zend\Form\Element\Password")
     * @Annotation\Required({"required":"true" })
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Filter({"name":"StringTrim"})
     * @Annotation\Validator({"name":"StringLength", "options":{"min":1, "max":30}})
     * @Annotation\Options({"label":"Mật khẩu:"})
     * @Annotation\Attributes({"id":"password","class":"password"})
     */
    public $password;

    /**
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Required({"required":"true" })
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Filter({"name":"StringTrim"})
     * @Annotation\Validator({"name":"StringLength", "options":{"min":"1"}})
     * @Annotation\Options({"label":"Họ Tên:"})
     * @Annotation\Attributes({"id":"fullName","class":"fullName"})
     */
    public $fullName;

    /**
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Required(false)
     * @Annotation\Options({"label":"Năm sinh:"})
     * @Annotation\Attributes({"id":"datepicker","class":"datepicker"})
     */
    public $birthday;

    /**
     * @Annotation\Type("Zend\Form\Element\Select")
     * @Annotation\Required(true)
     * @Annotation\Attributes({"id":"day","class":"dateTime"})
     */
    public $day;

    /**
     * @Annotation\Type("Zend\Form\Element\Select")
     * @Annotation\Required(false)
     * @Annotation\Attributes({"id":"month","class":"dateTime"})
     */
    public $month;

    /**
     * @Annotation\Type("Zend\Form\Element\Select")
     * @Annotation\Required(false)
     * @Annotation\Attributes({"id":"year","class":"dateTime"})
     */
    public $year;

    /**
     * @Annotation\Type("Zend\Form\Element\Select")
     * @Annotation\Required({"required":"true" })
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Options({"label":"Giới tính:",
     *                      "value_options" : {"1":"Nam","2":"Nữ"}})
     * @Annotation\Attributes({"value":"0","id":"sex","class":"sex"})
     */
    public $sex;

    /**
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Required({"required":"true" })
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Filter({"name":"StringTrim"})
     * @Annotation\Validator({"name":"StringLength", "options":{"min":"1"}})
     * @Annotation\Options({"label":"Thường trú:"})
     * @Annotation\Attributes({"id":"residentAddress","class":"residentAddress"})
     */
    public $residentAddress;

    /**
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Required(false)
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Filter({"name":"StringTrim"})
     * @Annotation\Validator({"name":"StringLength", "options":{"min":"1"}})
     * @Annotation\Options({"label":"Quê quán:"})
     * @Annotation\Attributes({"id":"nativePlace","class":"nativePlace"})
     */
    public $nativePlace;

    /**
     * @Annotation\Type("Zend\Form\Element\Email")
     * @Annotation\Required(false)
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Filter({"name":"StringTrim"})
     * @Annotation\Options({"label":"Email:"})
     * @Annotation\Attributes({"id":"email","class":"email"})
     */
    public $email;

    /**
     * @Annotation\Type("Zend\Form\Element\Text")
     * @Annotation\Required(false)
     * @Annotation\Filter({"name":"StringTrim"})
     * @Annotation\Filter({"name":"StripTags"})
     * @Annotation\Options({"label":"Số điện thoại:"})
     * @Annotation\Validator({"name":"Regex", "options":{"pattern":"/^[0-9]/"}})
     * @Annotation\Attributes({"id":"phoneNumber","class":"phoneNumber"})
     */
    public $phoneNumber;

    /**
     * @Annotation\Type("Zend\Form\Element\Select")
     * @Annotation\Required({"required":"true" })
     * @Annotation\Filters({"name":"StripTags"},{"name":"StringTrim"}}) 
     * @Annotation\Options({"label":"Phân quyền",
     *                      "value_options" : {"1":"admin","2":"Biên mục","3":"Thủ thư","4":"Bạn đọc"}})
     * @Annotation\Attributes({"id":"role","class":"role"})
     */
    public $roleID;

    /**
     * @Annotation\Type("Zend\Form\Element\Textarea")
     * @Annotation\Required(false)
     * @Annotation\Validator({"name":"StringLength", "options":{"max":"100"}})
     * @Annotation\Options({"label":"Mô tả thêm:"})
     * @Annotation\Attributes({"id":"description","cols":"33","rows":"5","class":"description"})
     */
    public $description;

    /**
     * @Annotation\Type("Zend\Form\Element\File")
     * @Annotation\Required(false)
     * @Annotation\Options({"label":"Ảnh thẻ:"})
     * @Annotation\Attributes({"id":"profilePhoto","class":"profilePhoto","size":"25"})
     */
    public $profilePhoto;

    /**
     * @Annotation\Type("Zend\Form\Element\Submit")
     * @Annotation\Attributes({"value":"Đăng ký"})
     * @Annotation\Attributes({"id":"register","class":"register"})
     */
    public $register;

}